/*
 *  Author: zhaijl 
 *  Url: http://218.1.73.212/down.php
 *  Country: China
 *  
 * ====================================================================
 *
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 * ====================================================================
 *
 * This software based apache mina 2.0 and spring 3.0
 *
 */
package org.cloudy.example;

import org.apache.log4j.Logger;
import org.cloudy.common.spring.SpringContextUtil;
import org.cloudy.http.mina.SimpleLoader;
import org.cloudy.http.startup.Startup;

public class WebStartup extends Startup {
	static Logger logger = Logger.getLogger ( WebStartup.class ) ;
	
	public static String logger () {
		return new StringBuilder ().append ( "server is running[]" ).toString () ;		
	}
	
	public static void main ( String[] args ) {	
		Startup startup = new WebStartup () ;
		try {
			//new org.neo4j.kernel.EmbeddedGraphDatabase( "dbf/graph-db" ).shutdown();
			startup.loader ( args.length <= 0 ? "zhaijl" : args[0] ) ;
			
			for ( ; ; ) {
				if ( SimpleLoader.getInstance ().isClose () ) {
					logger.info ( "server will closed after 10s " ) ;
					
					Thread.sleep ( 10000 ) ;
					
					SimpleLoader.getInstance ().dispose () ;
					startup.clean () ;
					
					logger.info ( "server closed ok " ) ;
					logger.info ( "===================================" ) ;
					break ;
				}
				
				Thread.sleep ( 10000 ) ;
				
				logger.info ( WebStartup.logger () ) ;
				logger.info ( ( ( SimpleLoader )SpringContextUtil.getBean ( "simpleLoader" ) ).logger () ) ;
				logger.info ( "===================================" ) ;
			}
			
		} catch ( Exception exc ) {
			exc.printStackTrace () ;
		}	
	}
}